【CISCN2023】unzip
本文最后更新于:2023年8月25日 下午
[CISCN2023]unzip
环境搭建
1.html
1 |
|
1.php
1 |
|
然后在命令行输入:
1 |
|
将 /var/www/html/
作为网站根目录启动php服务器
搭建成功
源码分析
首先通过1.html上传文件经过1.php,然后我们分析一下1.php:
1 |
|
看到这里没什么思路,查阅文章 一个有趣的任意文件读取 可知,需要使用linux中的软链接ln
软连接的作用类似于win下的快捷方式
假如我们使用软链接生成web
文件让其指向 /var/html/www/
目录的话,我们就可以通过该文件直接访问网站的目录了,然后我们将web
文件打包成zip.zip
,上传上去,这样就会在 /tmp
目录生成一个 web
文件,其指向 /var/html/www
目录
然后我们再上传一个 z.zip
文件 其目录为 : /web/shell.php
shell.php为一句话木马
当我们上传z.zip
的时候,将其解压到 /tmp
目录下的 web
目录下
重点来了,由于之前我们上传了一个软链接web
到/tmp
目录下,此时若解压z.zip
的话
正常情况下会解压到:/tmp/web/shell.php
但是由于web
指向了 /var/www/html
目录
所以会恰好将shell.php解压到 /var/www/html/shell.php
刚好解压到网站的访问目录,此时我们可以直接使用蚁剑连接了
实践探究
首先使用命令创建软链接:web
1 |
|
然后使用zip命令将其压缩为:zip.zip
1 |
|
然后我们上传zip.zip
成功上传到/tmp
目录
接着将 /web/shell.php
压缩:
上传,发现shell.php成功上传到 /var/html/www
:
上传成功,然后就可以getshell了